package com.deyuanyun.pic.settings.service.base;

import java.util.List;
import java.util.Map;

import com.deyuanyun.pic.settings.domain.base.Attachment;

/**
 * 
 * 
 * 附件service
 *
 * @author    scalpel.Wang
 * @version   2015年10月29日下午3:52:20
 * @see         // 引用的类
 * Method List: 方法列表                       
 *
 */
public interface AttachmentService {

    /**
     * 根据业务编号获取附件
     * 
     * @param businessId
     * @return
     */
    List<Attachment> queryAttachment(String businessId);
    
    /**
     * 根据业务编号获取附件，只返回第一条数据
     * 
     * @param businessId
     * @return
     */
    Attachment queryAttachmentTop1(String businessId);
    

    /**
     * 根据业务编号和文件类型，获取附件。
     * 
     * @param businessId
     * @param fileType
     * @return
     */
    List<Attachment> queryAttachment(String businessId,String fileType);
    
    /**
     * 根据业务编号和文件类型获取附件，只返回第一条。
     * 
     * @param businessId
     * @param fileType
     * @return
     */
    Attachment queryAttachmentTop1(String businessId,String fileType);
	/**
	 * 向数据库插入附件信息
	 * @param
	 * @return
	 * @throws
	 *
	 */
	int insertSelective(Attachment record);

	/**
	 * 通过附件ID更新业务ID
	 * @param businessId
	 * @param id
	 * @return
     */
	int updateBusinessIdById(String businessId,String id);
    
	/**
	  * 
	  * 
	  * 向数据库更新或插入附件信息
	  * @author 王敏
	  * @time 2015年10月29日下午3:52:10
	  * @param  参数列表
	  * @return   返回类型说明
	  * @see    
	  *
	 */
	int updateInsert(Map<String, String> param);
	
	/**
	  * 
	  * 
	  * 向数据库插入附件信息
	  * @author 王敏
	  * @time 2015年10月29日下午3:52:10
	  * @param  参数列表
	  * @return   返回类型说明
	  * @see    
	  *
	 */
	int insert(Map<String, String> param);

	
	/**
	  * 
	  * 
	  * 更新数据库中 同一ID 数据
	  * @author 王敏
	  * @time 2015年10月29日下午3:53:20
	  * @param  参数列表
	  * @return   返回类型说明
	  * @see    
	  *
	 */
	int update(Map<String, String> param);
	
	/**
	  * 删除附件
	  * @author 王敏
	  * @time 2015年10月29日下午3:53:52
	  * @param  参数列表
	  * @return   返回类型说明
	  * @see    
	  *
	 */
	int deleteByPrimaryKey(String id);
	/**
	 * 根据业务ID删除附件(假删除)
	 * @author 王敏
	 * @time 2015年10月29日下午3:53:52
	 * @param  参数列表
	 * @return   返回类型说明
	 * @see
	 *
	 */
	int updateByBusinessId(String businessId);
	/**
	 * 根据自定义类型查询附件
	 * @param businessId
	 * @param customType
	 * @return
     */
	List<Attachment> queryAttachmentByCustom(String businessId,String customType);

	/**
	 * 根据自定义类型查询附件,只返回一条
	 * @param businessId
	 * @param customType
	 * @return
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-11-10
	 */
	Attachment queryAttachmentByCustomOne(String businessId,String customType);
}
